package com.mvc.utils;

import com.mvc.framework.constant.GlobalConstant;


public class PressureHint {
	
	
	private static String A11 = "本次检查结果提示您的血压控制良好，请遵从医嘱坚持治疗，并定期测量血压，建议您参加血压管理服务";
	private static String A10 = "本次检查结果提示您的血压控制良好，但您作为高血压患者，仍应该常测量并继续控制好血压，建议您参加血压管理服务。";
	private static String A2 = "本次检查结果提示您的血压未达控制目标，请及时复诊，并定期测量血压，建议您参加血压管理服务。";
	
	private static String B11 = "本次检查您的血压正常，但您有高血压家族史，建议您定期测量血压。";
	private static String B10 = "很好！本次检查您的血压正常，请继续关注您的血压。";
	private static String B21 = "本次检查您的血压属于正常高值范围，且您有高血压家族史，建议您定期测量血压。";
	private static String B20 = "本次检查您的血压属于正常高值范围，建议您定期测量血压。";
	private static String B3 = "本次检查，您的血压值超过正常值范围，建议您进一步确诊。如确诊为高血压，请您尽快参加我们的血压管理服务。";
	/***
	 * A高血压病史 有
	 * A1―血压值正常 (<140 && <90)
	 * A11－服药：本次检查结果提示您的血压控制良好，请遵从医嘱坚持治疗，并定期测量血压，建议您参加血压管理服务
	 * A10－不服药：本次检查结果提示您的血压控制良好，但您作为高血压患者，仍应该常测量并继续控制好血压，建议您参加血压管理服务。
	 * A2―血压值异常 (>=140 || >=90):本次检查结果提示您的血压未达控制目标，请及时复诊，并定期测量血压，建议您参加血压管理服务。
	 * 
	 * B―高血压病史 无
	 * B1―血压值正常 (<120 && <80) 
	 * B11―若有高血压家族史:  本次检查您的血压正常，但您有高血压家族史，建议您定期测量血压。
	 * B10―若没有高血压家族史: 很好！本次检查您的血压正常，请继续关注您的血压。
	 * B2―血压高值 (>=120 && <140) || (>=80 && < 90) 
	 * B21―若有高血压家族史:  本次检查您的血压属于正常高值范围，且您有高血压家族史，建议您定期测量血压。
	 * B20―若没有高血压家族史: 本次检查您的血压属于正常高值范围，建议您定期测量血压。
	 * B3―血压异常 (>=140 || >=90) :本次检查，您的血压值超过正常值范围，建议您进一步确诊。如确诊为高血压，请您尽快参加我们的血压管理服务。
	 * 个人血压评估报告
	 * 
	 * @param sbp 收缩压
	 * @param dbp 舒张压
	 * @param htnYN 是否患有高血压 (1为有，0为无)
	 * @param doseYN 是否服用降压药 (1-有, 0-无)
	 * @param family 是否存在高血压家族史 baseInfo.FMH_HTN("家族病史{父、母、兄弟姐妹、子女}[1：有 0：无])

	 * @return 医生提示
	 */
	public static String getXueyaHint(Double sbp, Double dbp, String htnYN, String doseYN, String family) {
		/**是否有高血压病史**/
		boolean isHtn = "1".equals(htnYN);
		/**是否有服药**/
		boolean isDose = "1".equals(doseYN);
		/**是否有高血压家族史**/
		boolean isFamily = false;
		/**血压值异常 (sbp >= 140 || dbp >= 90)**/
		boolean BpHigh = sbp >= GlobalConstant.SBP_LINE_L || dbp >= GlobalConstant.DBP_LINE_L;
		/**血压高值 (120<= sbp <140) || (80<= dbp < 90) **/
//		boolean BpDanger = (sbp >= DataConstants.SBP_CRITICAL && sbp < DataConstants.SBP_HIGH) || (dbp >= DataConstants.DBP_CRITICAL && dbp < DataConstants.DBP_HIGH );
		/**血压值正常(sbp < 120 && dbp < 80)**/
		boolean BpCritical = sbp < GlobalConstant.SBP_CRITICAL && dbp < GlobalConstant.DBP_CRITICAL;
//		for (int i = 1; i <= 4; i++) {
//			isFamily = isFamily || "1".equals(StringUtil.fgetc(family, i));
//		}
		if(isHtn){
			if(BpHigh){
				return A2;
			}else{
				if(isDose){
					return A11;
				}else{
					return A10;
				}
			}
		}else{
			if(BpHigh){
				return B3;
			}
			if(BpCritical){
				if(isFamily){
					return B11;
				}else{
					return B10;
				}
			}else{
				if(isFamily){
					return B21;
				}else{
					return B20;
				}
			}
		}
	}
}
